package ar.maikoova.modelsControllers;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Types;

import ar.maikoova.bd.Conector;
import ar.maikoova.bd.ParametrosConexion;
import ar.maikoova.models.Arquitecto;



public class ArquitectoController {

	Conector c;
	Connection conexion;
	
	
	public int insert (Arquitecto arquitecto) throws SQLException{
		try{
			c = new Conector(ParametrosConexion.getParametros());
			conexion = c.getConnection();
			CallableStatement cs = conexion.prepareCall("{ call dbo.arquitectosCargar (?, ?, ?, ?, ?, ?, ?, ?, ?)}");
			
			cs.setString(1, arquitecto.getNombreArquitecto());
			cs.setString(2, arquitecto.getApellidoArquitecto());
			cs.setString(3, arquitecto.getDomicilioArquitecto());
			cs.setInt(4, arquitecto.getDniArquitecto());
			cs.setString(5, arquitecto.getCuilArquitecto());
			cs.setString(6, arquitecto.getMatriculaArquitecto());
			cs.setString(7,  arquitecto.getNacimientoArquitecto());
			cs.setString(8, arquitecto.getTelContactoArquitecto());
			cs.registerOutParameter(9, Types.INTEGER);
			cs.execute();
			return cs.getInt(9);
			// retorna 1 si fue exitoso, 0 si no pudo hacer la insercion. 
		}catch(Exception e){
			System.out.println("Consulta erronea");
			return -1;
			//retorna uno si hubo error de conexion
		}
		finally{
			conexion.close();
		}
	
	}	
	public int update(Arquitecto arquitecto) throws SQLException {
		try{
			c = new Conector(ParametrosConexion.getParametros());
			conexion = c.getConnection();
			CallableStatement cs = conexion.prepareCall("{ call dbo.arquitectosActualizar (?, ?, ?, ?, ?, ?, ?, ?, ?)}");
			
			cs.setString(1, arquitecto.getNombreArquitecto());
			cs.setString(2, arquitecto.getApellidoArquitecto());
			cs.setString(3, arquitecto.getDomicilioArquitecto());
			cs.setInt(4, arquitecto.getDniArquitecto());
			cs.setString(5, arquitecto.getCuilArquitecto());
			cs.setString(6, arquitecto.getMatriculaArquitecto());
			cs.setString(7,  arquitecto.getNacimientoArquitecto());
			cs.setString(8, arquitecto.getTelContactoArquitecto());
			cs.registerOutParameter(9, Types.INTEGER);
			cs.execute();
			return cs.getInt(9);
			// retorna 1 si fue exitoso, 0 si no pudo hacer la actualizacion. 
		}catch(Exception e){
			System.out.println("Consulta erronea");
			return -1;
			//retorna uno si hubo error de conexion
		}
		finally{
			conexion.close();
		}

	}
	
	public int delete(Arquitecto arquitecto) throws SQLException {
		//elimina un arquitecto basado en un dni
		try{
			c = new Conector(ParametrosConexion.getParametros());
			conexion = c.getConnection();
			CallableStatement cs = conexion.prepareCall("{ call dbo.arquitectosEliminar (?, ?)}");
			cs.setInt(1, arquitecto.getDniArquitecto());
			cs.registerOutParameter(2, Types.INTEGER);
			cs.execute();
			return cs.getInt(9);
			// retorna 1 si fue exitoso, 0 si no pudo hacer la actualizacion. 
		}catch(Exception e){
			System.out.println("Consulta erronea");
			return -1;
			//retorna uno si hubo error de conexion
		}
		finally{
			conexion.close();
		}
	}
	
}
